// pages/admin/dashboard/index.js
const api = require('../../../../utils/api.js');

Page({
  data: {
    adminInfo: {},
    statsData: {
      userCount: 0,
      orderCount: 0,
      revenue: 0,
      deviceCount: 0
    },
    recentActivities: []
  },

  onLoad() {
    this.checkAdminAuth();
    this.loadDashboardData();
  },

  onShow() {
    this.loadDashboardData();
  },

  async checkAdminAuth() {
    const adminToken = wx.getStorageSync('adminToken');
    if (!adminToken) {
      wx.navigateTo({
        url: '/pages/admin/login/index'
      });
      return;
    }

    const adminInfo = wx.getStorageSync('adminInfo');
    this.setData({
      adminInfo: adminInfo || {}
    });
  },

  async loadDashboardData() {
    try {
      // 加载统计数据
      await this.loadStatsData();
      
      // 加载最近活动
      await this.loadRecentActivities();
    } catch (error) {
      console.error('加载仪表盘数据失败:', error);
    }
  },

  async loadStatsData() {
    try {
      // 这里应该调用实际的统计API
      // 由于统计API需要具体实现，这里先使用模拟数据
      const mockStats = {
        userCount: 1256,
        orderCount: 3421,
        revenue: 1256800, // 分
        deviceCount: 28
      };

      this.setData({
        statsData: mockStats
      });
    } catch (error) {
      console.error('加载统计数据失败:', error);
    }
  },

  async loadRecentActivities() {
    try {
      // 这里应该调用实际的活动API
      // 由于活动API需要具体实现，这里先使用模拟数据
      const mockActivities = [
        {
          id: 1,
          icon: 'icon-user',
          text: '新用户注册',
          time: '2分钟前'
        },
        {
          id: 2,
          icon: 'icon-order',
          text: '新订单创建',
          time: '5分钟前'
        },
        {
          id: 3,
          icon: 'icon-device',
          text: '设备状态更新',
          time: '10分钟前'
        },
        {
          id: 4,
          icon: 'icon-payment',
          text: '支付成功',
          time: '15分钟前'
        }
      ];

      this.setData({
        recentActivities: mockActivities
      });
    } catch (error) {
      console.error('加载最近活动失败:', error);
    }
  },

  navigateTo(e) {
    const url = e.currentTarget.dataset.url;
    if (url) {
      wx.navigateTo({
        url: url
      });
    }
  },

  async handleLogout() {
    wx.showModal({
      title: '确认退出',
      content: '确定要退出管理员登录吗？',
      success: async (res) => {
        if (res.confirm) {
          try {
            // 清除本地存储
            wx.removeStorageSync('adminToken');
            wx.removeStorageSync('adminInfo');

            wx.showToast({
              title: '已退出登录',
              icon: 'success'
            });

            // 跳转到登录页
            setTimeout(() => {
              wx.navigateTo({
                url: '/pages/admin/login/index'
              });
            }, 1500);
          } catch (error) {
            console.error('退出登录失败:', error);
            wx.showToast({
              title: '退出失败',
              icon: 'none'
            });
          }
        }
      }
    });
  }
});